CG is commonly used in fields such as movies and television games.
For example, in three-dimensional CG, three-dimensional characters often have a skeleton model consisting of bones and joints. FIG. 40 shows an example of a skeleton model of a human body.
As is well known, a three-dimensional character is displayed by adding to the periphery of the skeleton model, sites of the character such as arms and legs which are composed of polygons and sticking texture to the surface of the polygons. Each site composed of a polygon and the texture are collectively referred to as shape data herein.
The three-dimensional character is moved by providing to a microcomputer an instruction (that is, motion data) to move any joint of the skeleton model.
Due to the recent spread of Internet, CG animations are commonly distributed via the network. "Virtual Reality Modeling Language" (hereafter referred to as "VRML") is popular as a language representing CG animations using Internet.
Displaying CG animations requires shape data required to display three-dimensional three-dimensional characters and motion data required to display them as animations. In VRML, shape and motion data is transferred from a server to a terminal using Internet.
The terminal displays the received data using a VRML browser. Since, however, shape and motion data is transferred from the server to the terminal, this method increases the amount of data transferred and thus the time required to transfer the data.
CG is commonly used in fields such as movies and television games. Many CG works now reproduce not only images but also matching music. A technique for associating CG with sounds is shown in Japanese Patent Application Laid Open No. 8-212388 as a three-dimensional image processing apparatus.
This image processing apparatus reproduces CG and audio data for which starting and ending times are defined, after associating the data with each other. The starting and end times of the CG data are designated as Cs and Ce, respectively. The starting and end times of the audio data are denoted as As and Ae, respectively. The reproduction time (Ae-As) for the sound is compared with the reproduction time (Ce-Cs) for the CG. If they are not equal, a tempo used to reproduce the sound is calculated as follows and the sound is reproduced based on the result of the calculation. EQU Tempo=Original tempo.times.(Ae-As)/(Ce-Cs)
In this manner, the tempo of sound is adjusted by relative comparison with the reproduction time of CG so as to reproduce CG and sound having different reproduction times while mutually synchronizing them.
This conventional technique, however, can reproduce audio data having a constant tempo but cannot synchronize CG with music data having a tempo changed in the middle of the music. Furthermore, if the tempo of Karaoke music is suddenly changed using a pitch control operation before that music ends, the synchronization may fail. Furthermore, the synchronization may also fail when special reproduction such as fast forwarding or rewinding is executed.